home *** CD-ROM | disk | FTP | other *** search
/ Champak 141 / (Vol 141) Oct 17 2011.iso / Games / dragon-runner.swf / scripts / KnightChar.as < prev    next >
Encoding:
Text File  |  2011-10-17  |  18.9 KB  |  668 lines

  1. package
  2. {
  3.    import flash.display.MovieClip;
  4.    import flash.events.Event;
  5.    
  6.    public class KnightChar extends MovieClip
  7.    {
  8.        
  9.       
  10.       internal const LEFT:* = 1;
  11.       
  12.       internal const INITARMOR:* = 100;
  13.       
  14.       internal const OUTSCR:* = 999;
  15.       
  16.       internal const JUMP:* = 11;
  17.       
  18.       internal const BORDERLEFT:* = 160;
  19.       
  20.       internal const ATTACK:* = 21;
  21.       
  22.       public var hitdetector:MovieClip;
  23.       
  24.       public var ┬º\x01\x01\x0b\x10┬º:int;
  25.       
  26.       internal const CENTER:* = 3;
  27.       
  28.       internal const DEAD:* = 666;
  29.       
  30.       internal const BLOCK:* = 22;
  31.       
  32.       public var Health:int;
  33.       
  34.       public var Face:String;
  35.       
  36.       internal const DOWN:* = 12;
  37.       
  38.       internal const BORDERDOWN:* = 337;
  39.       
  40.       internal const XSPEED:* = 16;
  41.       
  42.       internal const HSPEED:* = 8;
  43.       
  44.       internal const NORMAL:* = 20;
  45.       
  46.       private var ┬º\x01\x01\x02\t┬º:* = null;
  47.       
  48.       private var ┬º\x01\x01\f\x04┬º:* = null;
  49.       
  50.       private var ┬º\x01\x01\f\x05┬º:int;
  51.       
  52.       internal const VFACTOR:* = 0.85;
  53.       
  54.       public var Armor:int;
  55.       
  56.       private var ┬º\x01\x01\f\b┬º:Boolean;
  57.       
  58.       internal const HJUMPFACTOR:* = 0.6;
  59.       
  60.       internal const BORDERRIGHT:* = 560;
  61.       
  62.       internal const CENTERPAGE:* = BORDERLEFT + (BORDERRIGHT - BORDERLEFT) / 2;
  63.       
  64.       private var ┬º\x01\x01\x06\r┬º:* = null;
  65.       
  66.       public var ┬º\x01\x01\f\t┬º:int;
  67.       
  68.       private var ┬º\x01\x01\x0b\r┬º:Number;
  69.       
  70.       internal const INITHEALTH:* = 100;
  71.       
  72.       private var ┬º\x01\x01\t\x0f┬º:* = null;
  73.       
  74.       internal const VSPEED:* = 25;
  75.       
  76.       internal const STAND:* = 0;
  77.       
  78.       private var ┬º\x01\x01\f\n┬º:int;
  79.       
  80.       internal const BORDERUP:* = 237;
  81.       
  82.       internal const RIGHT:* = 2;
  83.       
  84.       internal const JUMPATTACK:* = 23;
  85.       
  86.       public function KnightChar()
  87.       {
  88.          ┬º\x01\x01\x02\t┬º = null;
  89.          ┬º\x01\x01\x06\r┬º = null;
  90.          ┬º\x01\x01\t\x0f┬º = null;
  91.          ┬º\x01\x01\f\x04┬º = null;
  92.          super();
  93.       }
  94.       
  95.       public function DragonAttack(param1:*, param2:*) : *
  96.       {
  97.          if(┬º\x01\x01\t\x0f┬º.GetKnightStatus() == BLOCK && Armor > 0)
  98.          {
  99.             Armor -= param2;
  100.          }
  101.          else
  102.          {
  103.             Health -= param1;
  104.             SetFace("damaged");
  105.          }
  106.          ┬º\x01\x01\t\x0f┬º.UpdateScore();
  107.          if(┬º\x01\x01\t\x0f┬º.GetKnightStatus() != DEAD && ┬º\x01\x01\t\x0f┬º.GetKnightStatus() != OUTSCR && Health <= 0)
  108.          {
  109.             ┬º\x01\x01\t\x0f┬º.SetKnightStatus("dead");
  110.             SetFace("dead");
  111.             ┬º\x01\x01\x0b\x10┬º = DEAD;
  112.          }
  113.       }
  114.       
  115.       public function Jump() : *
  116.       {
  117.          if(┬º\x01\x01\f\t┬º == STAND)
  118.          {
  119.             ┬º\x01\x01\x0b\r┬º = VSPEED;
  120.             ┬º\x01\x01\f\t┬º = JUMP;
  121.          }
  122.       }
  123.       
  124.       public function ┬º\x01\x01\f\x01┬º() : *
  125.       {
  126.          if(!┬º\x01\x01\f\b┬º)
  127.          {
  128.             ┬º\x01\x01\f\x05┬º = Math.ceil(15000 / 42);
  129.             ┬º\x01\x01\f\b┬º = true;
  130.          }
  131.       }
  132.       
  133.       public function GetCharType() : String
  134.       {
  135.          return "knight";
  136.       }
  137.       
  138.       private function ┬º\x01\x01\f\x02┬º() : *
  139.       {
  140.          var _loc1_:int = 0;
  141.          var _loc2_:int = 0;
  142.          _loc1_ = 0;
  143.          _loc2_ = 0;
  144.          if(┬º\x01\x01\f\x04┬º)
  145.          {
  146.             if(┬º\x01\x01\f\x04┬º.GetCharType() == "obstacle")
  147.             {
  148.                if(┬º\x01\x01\f\x04┬º.GetLive())
  149.                {
  150.                   Health += (┬º\x01\x01\t\x0f┬º.GetKnightStatus() == ATTACK || ┬º\x01\x01\t\x0f┬º.GetKnightStatus() == JUMPATTACK) && Boolean(┬º\x01\x01\f\x04┬º.attackable) ? 0 : -┬º\x01\x01\f\x04┬º.GetHealthDamage();
  151.                   Armor += ┬º\x01\x01\t\x0f┬º.GetKnightStatus() == ATTACK || ┬º\x01\x01\t\x0f┬º.GetKnightStatus() == JUMPATTACK ? -┬º\x01\x01\f\x04┬º.GetArmorDamage() : 0;
  152.                   if((┬º\x01\x01\t\x0f┬º.GetKnightStatus() == ATTACK || ┬º\x01\x01\t\x0f┬º.GetKnightStatus() == JUMPATTACK) && Boolean(┬º\x01\x01\f\x04┬º.attackable))
  153.                   {
  154.                      ┬º\x01\x01\f\x04┬º.SetLive(false);
  155.                      ┬º\x01\x01\t\x0f┬º.scoreMgr.SetScore(┬º\x01\x01\f\x04┬º.GetCharScore());
  156.                   }
  157.                   else
  158.                   {
  159.                      SetFace("damaged");
  160.                   }
  161.                }
  162.             }
  163.             else if(┬º\x01\x01\f\x04┬º.GetCharType() == "bird")
  164.             {
  165.                if(┬º\x01\x01\f\x04┬º.GetLive())
  166.                {
  167.                   Health += ┬º\x01\x01\t\x0f┬º.GetKnightStatus() == JUMPATTACK ? 0 : -┬º\x01\x01\f\x04┬º.GetHealthDamage();
  168.                   Armor += ┬º\x01\x01\t\x0f┬º.GetKnightStatus() == JUMPATTACK ? -┬º\x01\x01\f\x04┬º.GetArmorDamage() : 0;
  169.                   if(┬º\x01\x01\t\x0f┬º.GetKnightStatus() == JUMPATTACK)
  170.                   {
  171.                      ┬º\x01\x01\f\x04┬º.SetLive(false);
  172.                      ┬º\x01\x01\t\x0f┬º.scoreMgr.SetScore(┬º\x01\x01\f\x04┬º.GetCharScore());
  173.                   }
  174.                   else
  175.                   {
  176.                      SetFace("damaged");
  177.                   }
  178.                }
  179.             }
  180.             else if(┬º\x01\x01\f\x04┬º.GetCharType() == "item")
  181.             {
  182.                if(┬º\x01\x01\f\x04┬º.GetHealthDamage() == 0 && ┬º\x01\x01\f\x04┬º.GetArmorDamage() == 0)
  183.                {
  184.                   ┬º\x01\x01\f\x01┬º();
  185.                   SetFace("getitem");
  186.                }
  187.                else if(┬º\x01\x01\f\x04┬º.GetHealthDamage() > 0 && ┬º\x01\x01\f\x04┬º.GetArmorDamage() > 0)
  188.                {
  189.                   Health = 100;
  190.                   Armor = 100;
  191.                   SetFace("getitem");
  192.                }
  193.                else
  194.                {
  195.                   Health += ┬º\x01\x01\f\x04┬º.GetHealthDamage();
  196.                   Armor += ┬º\x01\x01\f\x04┬º.GetArmorDamage();
  197.                   SetFace("getitem");
  198.                }
  199.                ┬º\x01\x01\f\x04┬º.Destroy();
  200.                ┬º\x01\x01\f\x04┬º = null;
  201.             }
  202.             else if(┬º\x01\x01\f\x04┬º.GetCharType() == "fireball")
  203.             {
  204.                if(┬º\x01\x01\t\x0f┬º.GetKnightStatus() == BLOCK && Armor > 0)
  205.                {
  206.                   Armor -= ┬º\x01\x01\f\x04┬º.GetArmorDamage();
  207.                }
  208.                else
  209.                {
  210.                   Health -= ┬º\x01\x01\f\x04┬º.GetHealthDamage();
  211.                   SetFace("damaged");
  212.                }
  213.             }
  214.             ┬º\x01\x01\t\x0f┬º.UpdateScore();
  215.             if(┬º\x01\x01\t\x0f┬º.GetKnightStatus() != DEAD && ┬º\x01\x01\t\x0f┬º.GetKnightStatus() != OUTSCR && Health <= 0)
  216.             {
  217.                ┬º\x01\x01\t\x0f┬º.SetKnightStatus("dead");
  218.                SetFace("dead");
  219.                ┬º\x01\x01\x0b\x10┬º = DEAD;
  220.             }
  221.          }
  222.       }
  223.       
  224.       public function ┬º\x01\x01\f\x03┬º() : MovieClip
  225.       {
  226.          var _loc1_:Array = null;
  227.          var _loc2_:int = 0;
  228.          var _loc3_:* = undefined;
  229.          var _loc4_:int = 0;
  230.          var _loc5_:Boolean = false;
  231.          var _loc6_:String = null;
  232.          _loc1_ = new Array();
  233.          _loc2_ = 0;
  234.          _loc3_ = null;
  235.          _loc5_ = false;
  236.          _loc4_ = 2;
  237.          while(_loc4_ < ┬º\x01\x01\x06\r┬º.numChildren)
  238.          {
  239.             _loc3_ = ┬º\x01\x01\x06\r┬º.getChildAt(_loc4_);
  240.             if((_loc6_ = String(_loc3_.GetCharType())) == "obstacle" || _loc6_ == "item" || _loc6_ == "bird" || _loc6_ == "fireball")
  241.             {
  242.                if(_loc3_.hitTestObject(hitdetector))
  243.                {
  244.                   return _loc3_;
  245.                }
  246.             }
  247.             _loc4_++;
  248.          }
  249.          return null;
  250.       }
  251.       
  252.       public function Init(param1:*, param2:*, param3:*) : *
  253.       {
  254.          ┬º\x01\x01\x02\t┬º = param1;
  255.          ┬º\x01\x01\x06\r┬º = param2;
  256.          ┬º\x01\x01\t\x0f┬º = param3;
  257.          ┬º\x01\x01\x0b\x10┬º = STAND;
  258.          ┬º\x01\x01\f\t┬º = STAND;
  259.          Health = INITHEALTH;
  260.          Armor = INITARMOR;
  261.          ┬º\x01\x01\x0b\r┬º = VSPEED;
  262.          ┬º\x01\x01\f\b┬º = false;
  263.          ┬º\x01\x01\f\x05┬º = 0;
  264.          SetFace("run");
  265.          ┬º\x01\x01\x02\t┬º.addEventListener(Event.ENTER_FRAME,┬º\x01\x01\x06\x0e┬º,false,0,true);
  266.       }
  267.       
  268.       private function ┬º\x01\x01\f\x06┬º() : Boolean
  269.       {
  270.          if(┬º\x01\x01\f\x05┬º > 0)
  271.          {
  272.             --┬º\x01\x01\f\x05┬º;
  273.             ┬º\x01\x01\f\b┬º = true;
  274.          }
  275.          else
  276.          {
  277.             ┬º\x01\x01\f\b┬º = false;
  278.          }
  279.          return ┬º\x01\x01\f\b┬º;
  280.       }
  281.       
  282.       private function ┬º\x01\x01\f\x07┬º(param1:String) : Boolean
  283.       {
  284.          if(param1 == "left")
  285.          {
  286.             return this.x > BORDERLEFT;
  287.          }
  288.          if(param1 == "right")
  289.          {
  290.             return this.x < BORDERRIGHT;
  291.          }
  292.          if(param1 == "center")
  293.          {
  294.             return this.x - CENTERPAGE > 0;
  295.          }
  296.          if(param1 == "up")
  297.          {
  298.             return this.y > BORDERUP;
  299.          }
  300.          if(param1 == "down")
  301.          {
  302.             return this.y < BORDERDOWN;
  303.          }
  304.          return false;
  305.       }
  306.       
  307.       private function ┬º\x01\x01\x06\x0e┬º(param1:Event) : *
  308.       {
  309.          var _loc2_:* = undefined;
  310.          _loc2_ = null;
  311.          switch(┬º\x01\x01\f\t┬º)
  312.          {
  313.             case JUMP:
  314.                ┬º\x01\x01\x0b\r┬º *= VFACTOR;
  315.                if(┬º\x01\x01\f\x07┬º("up"))
  316.                {
  317.                   if(Math.abs(this.y - BORDERUP) > ┬º\x01\x01\x0b\r┬º)
  318.                   {
  319.                      this.y -= ┬º\x01\x01\x0b\r┬º;
  320.                   }
  321.                   else
  322.                   {
  323.                      this.y = BORDERUP;
  324.                   }
  325.                }
  326.                else
  327.                {
  328.                   ┬º\x01\x01\f\t┬º = DOWN;
  329.                }
  330.                break;
  331.             case DOWN:
  332.                ┬º\x01\x01\x0b\r┬º /= VFACTOR;
  333.                if(┬º\x01\x01\f\x07┬º("down"))
  334.                {
  335.                   if(Math.abs(this.y - BORDERDOWN) > ┬º\x01\x01\x0b\r┬º)
  336.                   {
  337.                      this.y += ┬º\x01\x01\x0b\r┬º;
  338.                   }
  339.                   else
  340.                   {
  341.                      if(┬º\x01\x01\t\x0f┬º.GetKnightStatus() != DEAD || ┬º\x01\x01\t\x0f┬º.GetKnightStatus() != OUTSCR)
  342.                      {
  343.                         SetFace("stand");
  344.                      }
  345.                      ┬º\x01\x01\f\t┬º = STAND;
  346.                      this.y = BORDERDOWN;
  347.                   }
  348.                }
  349.                else
  350.                {
  351.                   if(┬º\x01\x01\t\x0f┬º.GetKnightStatus() != DEAD || ┬º\x01\x01\t\x0f┬º.GetKnightStatus() != OUTSCR)
  352.                   {
  353.                      SetFace("stand");
  354.                   }
  355.                   ┬º\x01\x01\f\t┬º = STAND;
  356.                }
  357.                break;
  358.             default:
  359.                this.y = BORDERDOWN;
  360.          }
  361.          switch(┬º\x01\x01\x0b\x10┬º)
  362.          {
  363.             case LEFT:
  364.                if(┬º\x01\x01\f\x07┬º("left"))
  365.                {
  366.                   if(┬º\x01\x01\f\x06┬º())
  367.                   {
  368.                      this.x -= ┬º\x01\x01\f\t┬º == STAND ? XSPEED : XSPEED * HJUMPFACTOR;
  369.                   }
  370.                   else
  371.                   {
  372.                      this.x -= ┬º\x01\x01\f\t┬º == STAND ? HSPEED : HSPEED * HJUMPFACTOR;
  373.                   }
  374.                }
  375.                ┬º\x01\x01\x0b\x10┬º = STAND;
  376.                break;
  377.             case RIGHT:
  378.                if(┬º\x01\x01\f\x07┬º("right"))
  379.                {
  380.                   if(┬º\x01\x01\f\x06┬º())
  381.                   {
  382.                      this.x += ┬º\x01\x01\f\t┬º == STAND ? XSPEED : XSPEED * HJUMPFACTOR;
  383.                   }
  384.                   else
  385.                   {
  386.                      this.x += ┬º\x01\x01\f\t┬º == STAND ? HSPEED : HSPEED * HJUMPFACTOR;
  387.                   }
  388.                }
  389.                ┬º\x01\x01\x0b\x10┬º = STAND;
  390.                break;
  391.             case CENTER:
  392.                if(┬º\x01\x01\f\x07┬º("center"))
  393.                {
  394.                   this.x -= HSPEED;
  395.                }
  396.                else
  397.                {
  398.                   this.x = CENTERPAGE;
  399.                   ┬º\x01\x01\x0b\x10┬º = STAND;
  400.                }
  401.                break;
  402.             case DEAD:
  403.                if(this.x > -80)
  404.                {
  405.                   this.x -= HSPEED;
  406.                }
  407.                else
  408.                {
  409.                   ┬º\x01\x01\t\x0f┬º.SetKnightStatus("out");
  410.                }
  411.                break;
  412.             default:
  413.                ┬º\x01\x01\f\x06┬º();
  414.          }
  415.          _loc2_ = ┬º\x01\x01\f\x03┬º();
  416.          if(_loc2_)
  417.          {
  418.             if(_loc2_ != ┬º\x01\x01\f\x04┬º)
  419.             {
  420.                ┬º\x01\x01\f\x04┬º = _loc2_;
  421.                ┬º\x01\x01\f\x02┬º();
  422.             }
  423.          }
  424.       }
  425.       
  426.       public function SetFace(param1:String) : *
  427.       {
  428.          if(param1 == "run" && Health > 0)
  429.          {
  430.             Face = param1;
  431.             if(Armor > 75)
  432.             {
  433.                gotoAndPlay("run");
  434.             }
  435.             else if(Armor > 50)
  436.             {
  437.                gotoAndPlay("run75");
  438.             }
  439.             else if(Armor > 25)
  440.             {
  441.                gotoAndPlay("run50");
  442.             }
  443.             else if(Armor > 0)
  444.             {
  445.                gotoAndPlay("run25");
  446.             }
  447.             else
  448.             {
  449.                gotoAndPlay("runzero");
  450.             }
  451.          }
  452.          else if(param1 == "jump" && Health > 0)
  453.          {
  454.             Face = param1;
  455.             if(Armor > 75)
  456.             {
  457.                gotoAndPlay("jump");
  458.             }
  459.             else if(Armor > 50)
  460.             {
  461.                gotoAndPlay("jump75");
  462.             }
  463.             else if(Armor > 25)
  464.             {
  465.                gotoAndPlay("jump50");
  466.             }
  467.             else if(Armor > 0)
  468.             {
  469.                gotoAndPlay("jump25");
  470.             }
  471.             else
  472.             {
  473.                gotoAndPlay("jumpzero");
  474.             }
  475.          }
  476.          else if(param1 == "attack" && Health > 0 && Armor > 0)
  477.          {
  478.             Face = param1;
  479.             if(Armor > 75)
  480.             {
  481.                gotoAndPlay("attack");
  482.             }
  483.             else if(Armor > 50)
  484.             {
  485.                gotoAndPlay("attack75");
  486.             }
  487.             else if(Armor > 25)
  488.             {
  489.                gotoAndPlay("attack50");
  490.             }
  491.             else
  492.             {
  493.                gotoAndPlay("attack25");
  494.             }
  495.          }
  496.          else if(param1 == "block" && Health > 0 && Armor > 0)
  497.          {
  498.             Face = param1;
  499.             if(Armor > 75)
  500.             {
  501.                gotoAndPlay("block");
  502.             }
  503.             else if(Armor > 50)
  504.             {
  505.                gotoAndPlay("block75");
  506.             }
  507.             else if(Armor > 25)
  508.             {
  509.                gotoAndPlay("block50");
  510.             }
  511.             else if(Armor > 0)
  512.             {
  513.                gotoAndPlay("block25");
  514.             }
  515.          }
  516.          else if(param1 == "jumpattack" && Health > 0 && Armor > 0)
  517.          {
  518.             Face = param1;
  519.             if(Armor > 75)
  520.             {
  521.                gotoAndPlay("jumpattack");
  522.             }
  523.             else if(Armor > 50)
  524.             {
  525.                gotoAndPlay("jumpattack75");
  526.             }
  527.             else if(Armor > 25)
  528.             {
  529.                gotoAndPlay("jumpattack50");
  530.             }
  531.             else
  532.             {
  533.                gotoAndPlay("jumpattack25");
  534.             }
  535.          }
  536.          else if(param1 == "dead")
  537.          {
  538.             Face = param1;
  539.             if(Armor > 75)
  540.             {
  541.                gotoAndPlay("dead");
  542.             }
  543.             else if(Armor > 50)
  544.             {
  545.                gotoAndPlay("dead75");
  546.             }
  547.             else if(Armor > 25)
  548.             {
  549.                gotoAndPlay("dead50");
  550.             }
  551.             else if(Armor > 0)
  552.             {
  553.                gotoAndPlay("dead25");
  554.             }
  555.             else
  556.             {
  557.                gotoAndPlay("deadzero");
  558.             }
  559.          }
  560.          else if(param1 == "damaged" && Health > 0)
  561.          {
  562.             Face = param1;
  563.             Move("left");
  564.             if(Armor > 75)
  565.             {
  566.                gotoAndPlay("damaged");
  567.             }
  568.             else if(Armor > 50)
  569.             {
  570.                gotoAndPlay("damaged75");
  571.             }
  572.             else if(Armor > 25)
  573.             {
  574.                gotoAndPlay("damaged50");
  575.             }
  576.             else if(Armor > 0)
  577.             {
  578.                gotoAndPlay("damaged25");
  579.             }
  580.             else
  581.             {
  582.                gotoAndPlay("damagedzero");
  583.             }
  584.          }
  585.          else if(param1 == "getitem" && Health > 0)
  586.          {
  587.             Face = param1;
  588.             if(Armor > 75)
  589.             {
  590.                gotoAndPlay("getitem");
  591.             }
  592.             else if(Armor > 50)
  593.             {
  594.                gotoAndPlay("getitem75");
  595.             }
  596.             else if(Armor > 25)
  597.             {
  598.                gotoAndPlay("getitem50");
  599.             }
  600.             else if(Armor > 0)
  601.             {
  602.                gotoAndPlay("getitem25");
  603.             }
  604.             else
  605.             {
  606.                gotoAndPlay("getitemzero");
  607.             }
  608.          }
  609.          else if(Health > 0)
  610.          {
  611.             Face = "run";
  612.             if(Armor > 75)
  613.             {
  614.                gotoAndPlay("run");
  615.             }
  616.             else if(Armor > 50)
  617.             {
  618.                gotoAndPlay("run75");
  619.             }
  620.             else if(Armor > 25)
  621.             {
  622.                gotoAndPlay("run50");
  623.             }
  624.             else if(Armor > 0)
  625.             {
  626.                gotoAndPlay("run25");
  627.             }
  628.             else
  629.             {
  630.                gotoAndPlay("runzero");
  631.             }
  632.          }
  633.       }
  634.       
  635.       public function Destroy() : *
  636.       {
  637.          ┬º\x01\x01\x02\t┬º.removeEventListener(Event.ENTER_FRAME,┬º\x01\x01\x06\x0e┬º);
  638.       }
  639.       
  640.       public function Move(param1:String) : *
  641.       {
  642.          if(┬º\x01\x01\x0b\x10┬º == STAND)
  643.          {
  644.             if(param1 == "stand")
  645.             {
  646.                ┬º\x01\x01\x0b\x10┬º = STAND;
  647.             }
  648.             else if(param1 == "left")
  649.             {
  650.                ┬º\x01\x01\x0b\x10┬º = LEFT;
  651.             }
  652.             else if(param1 == "right")
  653.             {
  654.                ┬º\x01\x01\x0b\x10┬º = RIGHT;
  655.             }
  656.             else if(param1 == "center")
  657.             {
  658.                ┬º\x01\x01\x0b\x10┬º = CENTER;
  659.             }
  660.             else
  661.             {
  662.                ┬º\x01\x01\x0b\x10┬º = STAND;
  663.             }
  664.          }
  665.       }
  666.    }
  667. }
  668.